using System;
using System.Collections.Generic;

namespace HossMvp.Core
{
    public interface ICommand
    {
        string Name { get; }

        ICommand Bind(dynamic control, int eventType = EventTypeConstants.Click);

        ICommand Bind(IEnumerable<dynamic> controls, int eventType = EventTypeConstants.Click);

        Action<CommandContext> Execute { get; }

        Func<bool> CanExecute { get; }

        bool Enabled { get; }
    }
}